package com.chinaedu.oc.dao.commondity;

import java.util.List;

import com.chinaedu.oc.po.commodity.Commodity;
import com.chinaedu.oc.po.commodity.CommodityProduct;
import com.chinaedu.oc.po.commodity.dto.QueryCondition;
import com.chinaedu.oc.util.annotation.Slaver;

public interface ICommodityDao {
	
	
	/**
	 * 增加商品
	 * @param commodity
	 */
	void insert(Commodity commodity);
	
	/**
	 * 
	 * @param ids:商品ID 选中删除   有可能删除多个商品(批量删除)
	 */
	void delete(List<String> ids);
	
	
	/**
	 * 根据商品ID修改商品
	 * @param commodity
	 */
//	void updateById(Commodity commodity);
	
	
	void updateByCommodity(Commodity commodity);
	
	
/*	*//**
	 * 批量提交审核,  不能直接通过审核的执行该函数
	 *//*
	void updateByIds(List<String> ids);
	
	*//**
	 * 批量提交审核,  直接通过审核的执行该函数
	 *//*
	void updateThroughByIds(List<String> ids);*/
	
	/**
	 * 通过ID查询组合品信息
	 */
	List<CommodityProduct> findZHById(String id);
	
	/**
	 * 查找单品
	 * @param id
	 */
//	Commodity  findSigleById(String id);
	
	/**
	 * 分页查询
	 * @param param
	 * @return  返回页码内所有列表
	 */
//	List<Commodity> queryAll(QueryCondition queryCondition);
	
	/**
	 * 分页时查询记录数
	 * @param queryCondition
	 * @return
	 */
//	int queryCountByQueryCondition(QueryCondition queryCondition);
	
	/**
	 * 分页查询
	 * @param queryCondition
	 * @return
	 */
	List<Commodity> queryByPage(QueryCondition queryCondition);
	
	/**
	 * 
	 * @param commodity
	 * @return 通过条件查询(多条件查询)
	 */
	List<Commodity> queryByCase(Commodity commodity);
	
	
	/**
	 * 多ID查询 (选中查询)
	 * @param ids： 商品ID
	 * @return
	 */
//	List<Commodity> queryByIds(List<String> ids);
	
	/**
	 * 要打包的单品信息
	 * @param ids
	 * @return
	 */
	@Slaver
	List<CommodityProduct> commitSingleCommodity(List<String> ids);
	
}
